package pe.gob.osinergmin.activity.generic;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.TextView;
import android.widget.Toast;

import pe.gob.osinergmin.R;
import pe.gob.osinergmin.bean.common.UnidadOperativa;
import pe.gob.osinergmin.service.OrdenPedidoService;
import pe.gob.osinergmin.service.UnidadOperativaService;
import pe.gob.osinergmin.service.UsuarioService;
import pe.gob.osinergmin.service.impl.OrdenPedidoServiceImpl;
import pe.gob.osinergmin.service.impl.UnidadOperativaServiceImpl;
import pe.gob.osinergmin.service.impl.UsuarioServiceImpl;
import pe.gob.osinergmin.utils.PuntoControlConstants;
import pe.gob.osinergmin.utils.PuntoControlGPSTracker;
import pe.gob.osinergmin.utils.PuntoControlUtils;

public class GenericActivity extends Activity {

    private UsuarioService usuarioService;

    private UnidadOperativaService unidadOperativaService;

    private OrdenPedidoService ordenPedidoService;

    private PuntoControlGPSTracker puntoControlGPSTracker;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.usuarioService = UsuarioServiceImpl.getInstance();
        this.unidadOperativaService = UnidadOperativaServiceImpl.getInstance();
        this.ordenPedidoService = OrdenPedidoServiceImpl.getInstance();

        puntoControlGPSTracker = new PuntoControlGPSTracker(this);
    }

    public void setUsuarioService(UsuarioService usuarioService){
        this.usuarioService = usuarioService;
    }

    public UsuarioService getUsuarioService(){
        return this.usuarioService;
    }

    public UnidadOperativaService getUnidadOperativaService() {
        return unidadOperativaService;
    }

    public void setUnidadOperativaService(UnidadOperativaService unidadOperativaService) {
        this.unidadOperativaService = unidadOperativaService;
    }

    public void setOrdenPedidoService(OrdenPedidoService ordenPedidoService){
        this.ordenPedidoService = ordenPedidoService;
    }

    public OrdenPedidoService getOrdenPedidoService(){
        return this.ordenPedidoService;
    }

    public PuntoControlGPSTracker getPuntoControlGPSTracker() {
        return puntoControlGPSTracker;
    }

    public void setPuntoControlGPSTracker(PuntoControlGPSTracker puntoControlGPSTracker) {
        this.puntoControlGPSTracker = puntoControlGPSTracker;
    }

    public void makeText(Context context, int res_id, int duration){
        makeText(context, context.getResources().getString(res_id), duration);
    }

    public void makeText(Context context, CharSequence text, int duration){
        LayoutInflater inflater = getLayoutInflater();

        View custom_toast = inflater.inflate(R.layout.toast_custom, null);

        TextView textView = (TextView)custom_toast.findViewById(R.id.toast_text);
        textView.setText(text);

        Toast toast = new Toast(getApplicationContext());
        toast.setView(custom_toast);
        toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL, 0, 0);
        toast.setDuration(duration);
        toast.show();
    }

    public void hideSoftKeyboard(View v) {
        InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
    }
}
